#ifndef GLOBAL_HPP
#define GLOBAL_HPP

#include <iostream>
#include <vector>
#include <iterator>
#include <list>

#include "object.hpp"


struct Point
{
    unsigned int x;
    unsigned int y;
    friend std::ostream& operator << (std::ostream& s, const Point& point) {
        std::cout << "x(" << point.x << ")y(" << point.y << ")";
        return s;
    }
};

struct Line
{
    Point p1;
    Point p2;
    friend std::ostream& operator << (std::ostream& s, const Line& line) {
        std::cout << "p1(" << line.p1 << ")p2(" << line.p2 << ")";
        return s;
    }
};

struct Rect
{
    Rect(int _x = 0, int _y = 0, int _w = 0, int _h = 0):
        x(_x), y(_y), w(_w), h(_h)
    { }
    unsigned int x;
    unsigned int y;
    unsigned int w;
    unsigned int h;
    friend std::ostream& operator << (std::ostream& s, const Rect& rect){
        std::cout << "x(" << rect.x << ")y(" << rect.y
                << ")w(" << rect.w << ")h(" << rect.h << ")";
        return s;
    }
};

class Physic
{
private:
    int x, y;
    int vx, vy;
    int ax, ay;
};

#endif
